14 #define KER_FIND_LAST 0x01
17 #define KER_CVM_FAIL 0x00
18 #define KER_CVM_SKIP 0x01
19 #define KER_CVM_NO_CVM 0x02
20 #define KER_CVM_ONLINE_PIN 0x03
21 #define KER_CVM_PLAIN_PIN 0x04
22 #define KER_CVM_ENC_PIN 0x05
23 #define KER_CVM_PLAIN_PIN_SIG 0x06
24 #define KER_CVM_ENC_PIN_SIG 0x07
25 #define KER_CVM_SIGNATURE 0x08
26 #define KER_CVM_CUSTOM 0xFF
29 #define KER_CVM_RES_OK 0x00
30 #define KER_CVM_RES_FAIL 0x01
31 #define KER_CVM_RES_BYPASS 0x02
32 #define KER_CVM_RES_UNKNOWN 0x03
33 #define KER_CVM_RES_UNSUPP 0x04
34 #define KER_CVM_RES_UNREC 0x05
35 #define KER_CVM_RES_CANCEL 0x06
36 #define KER_CVM_RES_HW_ERR 0x07
39 #define KER_REFFERAL_RES_NA 0x00
40 #define KER_REFFERAL_RES_APPROVE 0x01
41 #define KER_REFFERAL_RES_DECLINE 0x02
44 #define KER_TAA_MODE_CHECK_OFFLINE_DECL 0x00
45 #define KER_TAA_MODE_FINAL_BEFORE_CAA 0x01
46 #define KER_TAA_MODE_UNABLE_TO_GO_ONLINE 0x02
251 typedef struct tag_KER_TRAN
KER_TRAN;
365 #define KER_TRAN_FL_SIGNATURE_CVM_REQUESTED 0x0001
366 #define KER_TRAN_FL_APP_VER_MISMATCH 0x0002
367 #define KER_TRAN_FL_TAA_OFFLINE_DECLINED 0x0004
368 #define KER_TRAN_FL_TAA_ONLINE_REQUEST 0x0008
369 #define KER_TRAN_FL_TAA_OFFLINE_APPROVE 0x0010
370 #define KER_TRAN_FL_CAA_OFFLINE_DECLINED 0x0020
371 #define KER_TRAN_FL_CAA_ONLINE_REQUEST 0x0040
372 #define KER_TRAN_FL_CAA_OFFLINE_APPROVED 0x0080
373 #define KER_TRAN_FL_TAA_DEFAULT_APPROVE 0x0100
374 #define KER_TRAN_FL_TAA_DEFAULT_DECLINED 0x0200
375 #define KER_TRAN_FL_CAA_SKIP_GAC2_BY_XDA 0x0400
376 #define KER_TRAN_FL_ADVICE_REQUIRED 0x1000
377 #define KER_TRAN_FL_SERVICE_NOT_ALLOWWED 0x2000
378 #define KER_TRAN_FL_PIN_TRY_EXCEEDED 0x4000
379 #define KER_TRAN_FL_ISS_AUTH_FAILED 0x8000
398 #define KER_TRAN_ERR_FL_PAN_MISMATCH 0x0001
399 #define KER_TRAN_ERR_FL_EXP_DATE_MISMATCH 0x0002
400 #define KER_TRAN_ERR_FL_INV_AUTH_DATA 0x0004
401 #define KER_TRAN_ERR_FL_PDOL_MAND_AMOUNT_MISSED 0x0008
420 #define KER_TRAN_STAT_APP_SELECTED 0x0001
421 #define KER_TRAN_STAT_PROC_INITIATED 0x0002
422 #define KER_TRAN_STAT_READ_DATA 0x0004
423 #define KER_TRAN_STAT_OFFLINE_AUTH 0x0008
424 #define KER_TRAN_STAT_PROC_RESTR 0x0010
425 #define KER_TRAN_STAT_CV 0x0020
426 #define KER_TRAN_STAT_RISK_MANAGEMENT 0x0040
427 #define KER_TRAN_STAT_CAA 0x0080
428 #define KER_TRAN_STAT_ONLINE 0x0100
KER_INT8U KER_BOOL
Definition: emv_platform.h:67
uint8_t KER_BYTE
Definition: emv_platform.h:70
KER_INT16U KER_RES
Definition: emv_platform.h:68
unsigned short KER_INT16U
Definition: emv_platform.h:61
struct tag_KER_OFFLINE_PIN_DATA KER_OFFLINE_PIN_DATA
offline PIN cvm related data structure
#define KER_CTX_PARAM
Definition: emv_context.h:53
KER_RES KER_API kerContTlvListAddByTLV(KER_CTX_PARAM const KER_BYTE *pbtTlv, KER_INT16U usTlvLen, KER_TLV **ppTlv)
Creates TLV container structure from provided TLV buffer and addes it to provided TLV List.
KER_BOOL KER_API kerContTlvListPushLast(KER_CTX_PARAM KER_TLV **ppTlv, KER_TLV *pTlvToPush)
Add TLV container structure to list (to the end of list)
KER_BOOL KER_API kerContTlvRelease(KER_CTX_PARAM KER_TLV *pTlv)
Releases TLV container structure.
KER_RES KER_API kerContTlvCreateByTag(KER_CTX_PARAM const KER_BYTE *pbtTag, KER_BYTE btTagLen, const KER_BYTE *pbtValue, KER_INT16U usValueLen, KER_TLV **ppTlv)
Creates TLV container structure from provided tag & value.
KER_TLV *KER_API kerContTlvListGetNext(KER_CTX_PARAM KER_TLV *pTlvListEntry)
Returns next TLV container structure in list.
KER_RES KER_API kerContTlvCreateByTLV(KER_CTX_PARAM const KER_BYTE *pbtTlv, KER_INT16U usTlvLen, KER_TLV **ppTlv)
Creates TLV container structure from provided TLV buffer.
KER_BOOL KER_API kerContTlvListPop(KER_CTX_PARAM KER_TLV **ppTlv, KER_TLV *pTlvToPop)
Pop TLV container structure from list.
KER_BOOL KER_API kerContTlvListRelease(KER_CTX_PARAM KER_TLV *pTlvList)
Releases TLV container structure list.
KER_BOOL KER_API kerContTlvListPush(KER_CTX_PARAM KER_TLV **ppTlv, KER_TLV *pTlvToPush)
Add TLV container structure to list (to the start of list)
struct tag_KER_TLV KER_TLV
TLV container structure.
Definition: emv_data.h:54
KER_BOOL KER_API kerTranGetCardData(KER_CTX_PARAM KER_TRAN *pTran, const KER_BYTE *pbtTag, KER_BYTE btTagLen, KER_BYTE *pbtData, KER_INT16U *pusDataLen, KER_INT16U usDataMax)
Obtain tag value from card by GET_DATA command.
KER_BOOL KER_API kerTranGetScriptResults(KER_CTX_PARAM KER_TRAN *pTran, KER_BYTE *pbtData, KER_INT16U *pusDataLen, KER_INT16U usDataMax)
Obtain data as tlv buffer by provided tag list.
KER_INT16U KER_API kerTranGetErrorFlags(KER_CTX_PARAM KER_TRAN *pTran)
Obtain some specific errors as bitmask.
KER_INT16U KER_API kerTranGetStatus(KER_CTX_PARAM KER_TRAN *pTran)
Obtain transaction progress status.
KER_BOOL KER_API kerTranGetCustDataByTag(KER_CTX_PARAM KER_TRAN *pTran, const KER_BYTE *pbtTag, KER_BYTE btTagLen, KER_BYTE *pbtData, KER_INT16U *pusDataLen, KER_INT16U usDataMax)
Obtain tag value from to transaction data structure (from unrecognized/unexpected ICC data)
KER_BOOL KER_API kerTranGetScriptResultsRef(KER_CTX_PARAM KER_TRAN *pTran, KER_INT16U usScriptIndex, KER_BYTE *pbtData, KER_INT16U *pusDataLen, KER_INT16U usDataMax)
Obtain data as tlv buffer by provided tag list.
KER_BOOL KER_API kerTranGetDataByTag(KER_CTX_PARAM KER_TRAN *pTran, const KER_BYTE *pbtTag, KER_BYTE btTagLen, KER_BYTE *pbtData, KER_INT16U *pusDataLen, KER_INT16U usDataMax)
Obtain tag value from transaction data structure.
KER_BOOL KER_API kerTranGetDataByDOL(KER_CTX_PARAM KER_TRAN *pTran, const KER_BYTE *pbtDol, KER_INT16U usDolLen, KER_BYTE *pbtData, KER_INT16U *pusDataLen, KER_INT16U usDataMax)
Obtain data according to the DOL provided.
struct tag_KER_TRAN KER_TRAN
Kernel internal transaction data structure.
Definition: emv_data.h:251
KER_INT16U KER_API kerTranGetFlags(KER_CTX_PARAM KER_TRAN *pTran)
Obtain some specific conditions as bitmask.
KER_BOOL KER_API kerTranRelease(KER_CTX_PARAM KER_TRAN *pTran)
Releases Transaction container structure.
offline PIN cvm related data structure
Definition: emv_data.h:79
const KER_BYTE * pbtOdePK
Definition: emv_data.h:93
KER_INT16U usSize
Definition: emv_data.h:80
KER_BYTE btOdeScheme
Definition: emv_data.h:83
KER_BYTE ar_btOdeUN[8]
Definition: emv_data.h:85
KER_BYTE btASI
Definition: emv_data.h:100
KER_BYTE btAlg
Definition: emv_data.h:92
KER_BYTE btPinTryCount
Definition: emv_data.h:82
const KER_BYTE * pbtOdePKExp
Definition: emv_data.h:95
TLV container structure.
Definition: emv_data.h:63
KER_INT16U usTlvLen
Definition: emv_data.h:65
KER_TLV * pNext
Definition: emv_data.h:67
KER_BYTE * pbtTlv
Definition: emv_data.h:64